#!/bin/bash

# Copyright (C) 2010, 2011, 2012, 2013 Embecosm Limited
# Copyright (C) 2013-2017 Synopsys Inc.

# Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
# Contributor Joern Rennecke <joern.rennecke@embecosm.com>
# Contributor Anton Kolesov <Anton.Kolesov@synopsys.com>

# This file is additional DejaGnu procs to support telnet based testing.

# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 3 of the License, or (at your option)
# any later version.

# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
# more details.

# You should have received a copy of the GNU General Public License along
# with this program.  If not, see <http://www.gnu.org/licenses/>.

#		ARC Bare Metal DejaGnu CGEN Simulator Support
#		=============================================

# This board specification is for use with the ARC CGEN simulator

# This is a list of toolchains that are supported on this board.
set_board_info target_install ${target_triplet}

# Load the generic configuration for this board. This will define a basic set
# of routines needed by the tool to communicate with the board.
load_generic_config "sim"

# basic-sim.exp is a basic description for the standard Cygnus simulator.
load_base_board_description "basic-sim"

search_and_load_file "library file" "arc-common.exp" ${boards_dir}

# "arc" is the name of the sim subdir.
setup_sim arc

# Any multilib options are set in an environment variable.
process_multilib_options [arc_get_multilib_options]

# Extra link flags specific to ARC
set xldflags "-Wl,--defsym=__DEFAULT_HEAP_SIZE=256m -Wl,--defsym=__DEFAULT_STACK_SIZE=32m"

# We only support newlib on this target. We assume that all multilib
# options have been specified before we get here.
set_board_info compiler  "[find_gcc]"
set_board_info cflags    "[libgloss_include_flags] [newlib_include_flags] [arc_get_cflags]"
set_board_info ldflags   "[libgloss_link_flags] ${xldflags} [newlib_link_flags]"
# No linker script needed.
set_board_info ldscript ""

# The simulator doesn't return exit statuses and we need to indicate this;
# the standard GCC wrapper will work with this target.
#set_board_info needs_status_wrapper  1
# Doesn't pass arguments or signals, can't return results, and doesn't
# do inferiorio.
#set_board_info noargs 1
set_board_info gdb,nosignals 1
#set_board_info gdb,noresults 1
#set_board_info gdb,noinferiorio 1
# Doesn't use HW watchpoints.
set_board_info gdb,no_hardware_watchpoints 1

# vim: noexpandtab sts=4 ts=8:
